package com.lx.util;

import java.io.*;
import java.sql.*;
import java.util.Properties;

/*
JDBC工具类
*/
public class JDBCUtils {
    private static String url;
    private static String user;
    private static String password;
    private static String driver;

    /**
     *文件的读取，只需要读取一次即可拿到这些值 。使用静态代码块
     */
    static {
        //读取资源文件，获取值
        try {
            // 1. 创建properyies集合类
            Properties pro = new Properties();
            //获取src路径下文件的方式-----> ClassLoader类加载器

            // 2. 加载文件
            FileReader in = new FileReader("D:\\Program Files\\works\\jdbc\\src\\jdbc.properties");
            pro.load(in);
            //3. 获取数据，赋值
            url=pro.getProperty("url");
            user=pro.getProperty("user");
            password=pro.getProperty("password");
            driver=pro.getProperty("driver");
            //4. 注册驱动
            Class.forName(driver);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取连接
     *
     * @return 返回连接对象
     */
    public static Connection getConnections() throws SQLException {
        return DriverManager.getConnection(url,user,password);
//        return DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false", "root", "123456");
    }

    /**
     * 释放资源
     *
     * @param rs
     * @param stmt
     * @param conn
     */
    public static void close(ResultSet rs, Statement stmt, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
